#ifndef HRAC_H
#define HRAC_H

#include <QVector>
#include <QColor>
#include <QPainterPath>
#include <QDataStream>
#include "tah.h"

enum TypHrace {LOCAL, REMOTE, COMPUTER};

class Hrac
{
  private:
    QString * jmeno;
    QColor * barva;
    quint16 * znak;
    quint16 * body;
    QVector <Tah> * tahy;
    QPainterPath * grafika;
    TypHrace * typ;
  public:
    Hrac();
    Hrac(const Hrac &other);
    Hrac(QDataStream &in);
    ~Hrac();
    void nastavVlastnosti(QString jmeno, QColor barva, quint16 znak, quint16 body, TypHrace typ);
    void pridejTah(quint16 x, quint16 y);
    quint16 * zjistiZnak();
    quint16 * zjistiBody();
    QColor * zjistiBarvu();
    QPainterPath * zjistiGrafiku();
    QString * zjistiJmeno();
    QVector<Tah> * zjistiTahy();
    TypHrace * zjistiTyp();
    bool existujeTah(quint16 x, quint16 y);
    bool checkForVictory();
    void serialize(QDataStream &ost);
    void unserialize(QDataStream &in);
    QDataStream &operator<<(QDataStream &out);
    QDataStream &operator>>(QDataStream &in);
};

#endif // HRAC_H
